package com.hskn.hss.module.violationHandleLog.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.hskn.hss.core.annotation.Excel;
import com.hskn.hss.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.io.Serializable;
import java.util.Date;

/**
 * 违规处理记录对象 violation_handle_log
 * 
 * @author ccm
 * @date 2021-09-07
 */
public class ViolationHandleLog implements Serializable
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    private String id;

    /** 主体id */
    @Excel(name = "主体id")
    private String subjectId;

    /** 主体名称 */
    @Excel(name = "主体名称")
    private String subjectName;

    /** 主体类型id */
    @Excel(name = "主体类型id")
    private String subjectTypeId;

    /** 主体类型名称 */
    @Excel(name = "主体类型名称")
    private String subjectTypeName;

    /** 所属机构id */
    @Excel(name = "所属机构id")
    private String depId;

    /** 所属机构名称 */
    @Excel(name = "所属机构名称")
    private String depName;

    /** 违规类型id */
    @Excel(name = "违规类型id")
    private String alarmTypeId;

    /** 违规类型名称 */
    @Excel(name = "违规类型名称")
    private String alarmTypeName;

    /** 处理方式（已处理） */
    @Excel(name = "处理方式", readConverterExp = "已处理")
    private String dealType;

    /** 处理人uid */
    @Excel(name = "处理人uid")
    private String dealUid;
    /**
     * 处理人名称
     */
    @Excel(name = "处理人名称")
    private String dealUName;

    /** 处理备注 */
    @Excel(name = "处理备注")
    private String dealRemark;

    /** 违规内容 */
    @Excel(name = "违规内容")
    private String content;

    /** 违规开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @Excel(name = "违规开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date alarmStartTime;

    /** 违规结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @Excel(name = "违规结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date alarmEndTime;

    /** 是否持续违规(0不持续  1持续) */
    @Excel(name = "是否持续违规(0不持续  1持续)")
    private Integer isKeep;

    /** 违规地点 经度 */
    @Excel(name = "违规地点 经度")
    private String lng;

    /** 违规地点 纬度 */
    @Excel(name = "违规地点 纬度")
    private String lat;

    /** 违规时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @Excel(name = "违规时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date violationTime;

    /** 位置地点名称 */
    @Excel(name = "位置地点名称")
    private String address;

    /** 违规时长 秒 */
    @Excel(name = "违规时长 秒")
    private String duration;
    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;

    /** 标记（emp：人员，car:车辆，fac:设施） */
    @Excel(name = "标记", readConverterExp = "emp：人员，car:车辆，fac:设施")
    private String alarmSign;

    /** 违规Id */
    @Excel(name = "违规Id")
    private String violationId;

    public ViolationHandleLog() {
    }

    public void setId(String id)
    {
        this.id = id;
    }

    public String getId() 
    {
        return id;
    }
    public void setSubjectId(String subjectId)
    {
        this.subjectId = subjectId;
    }

    public String getSubjectId()
    {
        return subjectId;
    }
    public void setSubjectName(String subjectName)
    {
        this.subjectName =subjectName;
    }

    public String getSubjectName()
    {
        return subjectName;
    }
    public void setSubjectTypeId(String subjectTypeId)
    {
        this.subjectTypeId = subjectTypeId;
    }

    public String getSubjectTypeId()
    {
        return subjectTypeId;
    }
    public void setSubjectTypeName(String subjectTypeName)
    {
        this.subjectTypeName = subjectTypeName;
    }

    public String getSubjectTypeName()
    {
        return subjectTypeName;
    }
    public void setDepId(String depId) 
    {
        this.depId = depId;
    }

    public String getDepId() 
    {
        return depId;
    }
    public void setDepName(String depName) 
    {
        this.depName = depName;
    }

    public String getDepName() 
    {
        return depName;
    }
    public void setAlarmTypeId(String alarmTypeId) 
    {
        this.alarmTypeId = alarmTypeId;
    }

    public String getAlarmTypeId() 
    {
        return alarmTypeId;
    }
    public void setAlarmTypeName(String alarmTypeName) 
    {
        this.alarmTypeName = alarmTypeName;
    }

    public String getAlarmTypeName() 
    {
        return alarmTypeName;
    }
    public void setDealType(String dealType) 
    {
        this.dealType = dealType;
    }

    public String getDealType() 
    {
        return dealType;
    }
    public void setDealUid(String dealUid) 
    {
        this.dealUid = dealUid;
    }

    public String getDealUid() 
    {
        return dealUid;
    }
    public void setDealRemark(String dealRemark) 
    {
        this.dealRemark = dealRemark;
    }

    public String getDealRemark() 
    {
        return dealRemark;
    }
    public void setContent(String content) 
    {
        this.content = content;
    }

    public String getContent() 
    {
        return content;
    }
    public void setAlarmStartTime(Date alarmStartTime) 
    {
        this.alarmStartTime = alarmStartTime;
    }

    public Date getAlarmStartTime() 
    {
        return alarmStartTime;
    }
    public void setAlarmEndTime(Date alarmEndTime) 
    {
        this.alarmEndTime = alarmEndTime;
    }

    public Date getAlarmEndTime() 
    {
        return alarmEndTime;
    }
    public void setIsKeep(Integer isKeep) 
    {
        this.isKeep = isKeep;
    }

    public Integer getIsKeep() 
    {
        return isKeep;
    }
    public void setLng(String lng) 
    {
        this.lng = lng;
    }

    public String getLng() 
    {
        return lng;
    }
    public void setLat(String lat) 
    {
        this.lat = lat;
    }

    public String getLat() 
    {
        return lat;
    }
    public void setViolationTime(Date violationTime) 
    {
        this.violationTime = violationTime;
    }

    public Date getViolationTime() 
    {
        return violationTime;
    }
    public void setAddress(String address) 
    {
        this.address = address;
    }

    public String getAddress() 
    {
        return address;
    }
    public void setDuration(String duration) 
    {
        this.duration = duration;
    }

    public String getDuration() 
    {
        return duration;
    }
    public void setAlarmSign(String alarmSign) 
    {
        this.alarmSign = alarmSign;
    }

    public String getAlarmSign() 
    {
        return alarmSign;
    }

    public String getDealUName() {
        return dealUName;
    }

    public void setDealUName(String dealUName) {
        this.dealUName = dealUName;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public String getViolationId() {
        return violationId;
    }

    public void setViolationId(String violationId) {
        this.violationId = violationId;
    }

    public ViolationHandleLog(String id,String violationId, String subjectId, String subjectName, String subjectTypeId, String subjectTypeName, Date createTime, String depId, String depName, String alarmTypeId, String alarmTypeName, String dealType, String dealUid, String dealUName, String dealRemark, String content, Date alarmStartTime, Date alarmEndTime, Integer isKeep, String lng, String lat, Date violationTime, String address, String duration, String alarmSign) {
        this.id = id;
        this.violationId = violationId;
        this.subjectId = subjectId;
        this.subjectName = subjectName;
        this.subjectTypeId = subjectTypeId;
        this.subjectTypeName = subjectTypeName;
        this.depId = depId;
        this.depName = depName;
        this.alarmTypeId = alarmTypeId;
        this.alarmTypeName = alarmTypeName;
        this.dealType = dealType;
        this.dealUid = dealUid;
        this.dealUName = dealUName;
        this.dealRemark = dealRemark;
        this.content = content;
        this.alarmStartTime = alarmStartTime;
        this.alarmEndTime = alarmEndTime;
        this.isKeep = isKeep;
        this.lng = lng;
        this.lat = lat;
        this.violationTime = violationTime;
        this.address = address;
        this.duration = duration;
        this.alarmSign = alarmSign;
        this.createTime = createTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("subjectId", getSubjectId())
            .append("subjectName", getSubjectName())
            .append("subjectTypeId",getSubjectTypeId())
            .append("subjectTypeName", getSubjectTypeName())
            .append("depId", getDepId())
            .append("depName", getDepName())
            .append("alarmTypeId", getAlarmTypeId())
            .append("alarmTypeName", getAlarmTypeName())
            .append("createTime", getCreateTime())
            .append("dealType", getDealType())
            .append("dealUid", getDealUid())
            .append("dealUName", getDealUName())
            .append("dealRemark", getDealRemark())
            .append("content", getContent())
            .append("alarmStartTime", getAlarmStartTime())
            .append("alarmEndTime", getAlarmEndTime())
            .append("isKeep", getIsKeep())
            .append("lng", getLng())
            .append("lat", getLat())
            .append("violationTime", getViolationTime())
            .append("address", getAddress())
            .append("duration", getDuration())
            .append("alarmSign", getAlarmSign())
            .toString();
    }
}
